package exp.day05;

import java.util.Scanner;
import java.util.Stack;

//现在，有一行括号序列，请你检查这行括号是否配对。 输入 第一行输入一个数N<=1000)后面是N行由组成的括号序列~ 输出 每组输入数据的输出占一行，如果该字符串中所含的括号是配对的，则输出Yes,如果不配对则输出No
//样例输入3
//[(])
//(])
//([[]()])
//样例输出 No No Yes
public class Exp02MatchBrace {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt();
        boolean[] tag = new boolean[n];
        cin.nextLine();
        for (int i = 0; i < n; i++) {
            tag[i] = check(cin.nextLine());
        }
        for (boolean i : tag)
            System.out.print(i ? "yes " : "no ");
    }

    private static boolean check(String s) {
        char[] chars = s.toCharArray();
        Stack<Character> S = new Stack<>();
        for (char ch : chars) {
            if (ch == '(' || ch == '[')
                S.push(ch);
            else if (ch == ')') {
                if (S.isEmpty() || S.peek() != '(')
                    return false;
                else S.pop();
            } else if (ch == ']') {
                if (S.isEmpty() || S.peek() != '[')
                    return false;
                else S.pop();
            }
        }
        return S.isEmpty();
    }

}
